package com.obixlabs.kalua.domainmodel.catalogue;

import java.util.Currency;
import java.util.Set;

import com.obixlabs.kalua.domainmodel.NumericId;
import com.obixlabs.kalua.domainmodel.user.UserAccountReference;

public class CatalogueImpl implements Catalogue {

	private NumericId id;
	private NumericId retailerId;
	private Currency listingCurrency;
	private UserAccountReference ownerId;
	private Set<CatalogueEditionId> editions;

	private CatalogueImpl() { }
		
	public CatalogueImpl(	NumericId id, 
										NumericId retailer,
										Currency listingCurrency, 
										UserAccountReference owner,
										Set<CatalogueEditionId> editions) {
		this();
		setId(id);
		setRetailerId(retailer);
		setListingCurrency(listingCurrency);
		setOwnerId(owner);
	}

	@Override 
	public NumericId getId() { return this.id; }
	private void setId(NumericId id) { this.id = id; }
	
	@Override 
	public NumericId getRetailerId() { return this.retailerId; }
	private void setRetailerId(NumericId retailer) { this.retailerId = retailer; }
	
	@Override 
	public Currency getListingCurrency() { return this.listingCurrency; }
	private void setListingCurrency(Currency listingCurrency) 
	{ this.listingCurrency = listingCurrency; }	
	
	@Override 
	public UserAccountReference getOwnerId() { return this.ownerId; }
	private void setOwnerId(UserAccountReference owner) { this.ownerId = owner; }	
	
	@Override
	public Set<CatalogueEditionId> getEditions() { return this.editions; }
	public void setEditions(Set<CatalogueEditionId> editions) 
	{ this.editions = editions; }
	
}